1. Field of the Invention
The field of the invention in general is optical processing and in particular is multiplication of two matrices by optical techniques.
2. Description of the Prior Art
The product of two matrices is often required in mathematical analysis, particularly in the reduction of numerical data, 2-dimensional transforms, matrix inversion and pattern recognition. An N.times.N square matrix A is composed of N.sup.2 elements commonly represented as ##EQU1## Similar representations are used for matrices B and C.
The product of the two matrices A and B is concisely written as EQU C=A B (2)
The elements of the product C are given by the expression ##EQU2## The matrix multiplication represented in Eqn. (3) is commonly performed on digital computers. However, a separate N-fold multiplication and sum for each of the N.sup.2 elements of C needs to be performed. Where large amounts of data needs to processed, the multiplication represented by Eqn. (3) may be too slow for the desired data processing rates.
The use of optical techniques has been suggested for matrix multiplication which would not only be fast but would allow parallel processing for many of the elements of the product matrix C. Many of these schemes involve either a two-dimensional array of modulated light or a two-dimensional array or mask of spatial light modulators. Such 2-D arrays cannot be updated at speeds high enough to provide a truly high speed matrix-matrix multiplication.
An alternative approach has been described by Caulfield et al. in Optics Communications, volume 40, number 2, pages 86-90, 1981 in a technique called systolic array processing The matrix C can be represented as N vectors, for instance each of N columns is a separate vector. Then the jth column of C can be computed as a vector-matrix multiplication of the matrix A and the vector of the jth column of B. Caulfield et al. provide optical techniques for the resultant vector-matrix multiplication using linear or 1-D arrays of light emitting diodes (LEDs) and acoustooptic modulators. The matrix C is then computed one column at a time. However, such a processor requires 2N-1 parallel channels for N.times.N matrices and takes 4N clock cycles to perform one vector-matrix multiplication. Thus, it does not fully utilize the parallel processing capabilities of optical systems.